#ifndef DOOROUTPUTMESSAGEQUEUE_H_
#define DOOROUTPUTMESSAGEQUEUE_H_

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include "AbstractMessageQueue.h"
#include "../../common.h"


class DoorOutputMessageQueue : public AbstractMessageQueue
{

public:
	DoorOutputMessageQueue() : AbstractMessageQueue() {} 
	
	virtual ~DoorOutputMessageQueue() {}

	int enviarMensaje(PersonaOutputMsg msg) {
		int resultado = msgsnd(this->id, (const void *) & msg, sizeof(PersonaOutputMsg) - sizeof(long), 0);
		return resultado;
	}
	
	int recibirMensaje(long mtype, PersonaOutputMsg *msg) {
		int resultado = msgrcv(this->id, (void *) msg, sizeof(PersonaOutputMsg) - sizeof(long), mtype, 0);
		return resultado;
	}

};
#endif

